home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume18 / mush6.4 / part18 < prev    next >
Encoding:
Internet Message Format  |  1989-03-12  |  51.8 KB

  1. Subject:  v18i040:  Mail user's shell version 6.4, Part18/19
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: Dan Heller <island!argv@sun.com>
  7. Posting-number: Volume 18, Issue 40
  8. Archive-name: mush6.4/part18
  9.  
  10.  
  11.  
  12. #! /bin/sh
  13. # This is a shell archive.  Remove anything before this line, then unpack
  14. # it by saving it into a file and typing "sh file".  To overwrite existing
  15. # files, type "sh file -c".  You can also feed this as standard input via
  16. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  17. # will see the following message at the end:
  18. #        "End of archive 18 (of 19)."
  19. # Contents:  mush.1.2
  20. # Wrapped by rsalz@papaya.bbn.com on Mon Mar 13 19:25:24 1989
  21. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  22. if test -f 'mush.1.2' -a "${1}" != "-c" ; then 
  23.   echo shar: Will not clobber existing file \"'mush.1.2'\"
  24. else
  25. echo shar: Extracting \"'mush.1.2'\" \(49816 characters\)
  26. sed "s/^X//" >'mush.1.2' <<'END_OF_FILE'
  27. X.sp
  28. X.nf
  29. X.ti +2
  30. Xalias dan dheller@cory.berkeley.edu island!argv@sun.com
  31. X.fi
  32. X.sp
  33. XThis defines the name \*Qdan\*U to be shorthand for two addresses,
  34. Xboth of which happen to be Dan Heller.
  35. X.sp
  36. XThe command
  37. X.B unalias
  38. Xcan be used to remove an alias definition.
  39. X.sp
  40. XWith no arguments,
  41. X.B alias
  42. Xprints out all the current aliases.
  43. XWith one argument, it prints the list associated with that name,
  44. Xand with more than one argument, it creates a new alias.
  45. X.TP
  46. X.BR alternates " [host-list] [!path!login] [*]"
  47. X.RB ( alts )
  48. XThis command
  49. Xis useful if you have accounts on several machines.
  50. XIt can be used to inform
  51. X.I Mush
  52. Xthat your login name at each of the listed hosts is really you.
  53. XWhen you
  54. X.B reply
  55. Xto messages,
  56. X.I Mush
  57. Xwill not send a copy of the message to your login name at any of the
  58. Xhosts listed on the
  59. X.B alternates
  60. Xlist.  If the special symbox \*Q*\*U is used, then your login name is
  61. Xmatched against all pathnames and local addresses.
  62. X.sp
  63. XIf you have another login name on the local or remote machine, then
  64. Xthat login may be specified by preceding the login name or the path
  65. Xto the login name by a `!' character.
  66. X.sp
  67. XFor example,
  68. X.sp
  69. X.nf
  70. X.ti +2
  71. Xalts island maui molokai ceylon !cory.berkeley.edu!dheller !root
  72. X.fi
  73. X.sp
  74. Xare all either hostnames or pathnames to my other accounts.
  75. XThe last item, \*Q!root\*U will match root that is only destined for my
  76. Xworkstation.
  77. XRoot accounts elsewhere are not considered to be me.
  78. X.sp
  79. XIf the
  80. X.B alternates
  81. Xcommand is given with no arguments, the current set of alternate
  82. Xnames is displayed.
  83. X.TP
  84. X.BR bind " [string [command [parameters]]]"
  85. X.ns
  86. X.TP
  87. X.BR unbind " string"
  88. X.rs
  89. XBind the sequence of keystrokes specified by
  90. X.I string
  91. Xto the curses-mode function,
  92. X.IR command .
  93. XThe
  94. X.I string
  95. Xis usually one or two characters, or a sequence sent by
  96. Xone of the \*Qfunction keys\*U of a particular terminal.
  97. XSee the CURSES INTERFACE section for a complete list of curses-mode
  98. Xfunctions; this interface is not available on all systems.
  99. XThe
  100. X.I parameters
  101. Xare currently recognized only for the special
  102. X.B macro
  103. Xfunction; see the
  104. X.B bind-macro
  105. Xcommand for details.
  106. X.sp
  107. XIf no arguments are given to
  108. X.BR bind ,
  109. Xthe current set of curses bindings are listed;
  110. Xif only a
  111. X.I string
  112. Xargument is given, the binding for that string is listed;
  113. Xand if both a
  114. X.I string
  115. Xand a
  116. X.I command
  117. Xare given, a curses binding is created such that when the
  118. X.I string
  119. Xis typed in curses mode, the function specified by
  120. X.I command
  121. Xwill be executed.
  122. X.sp
  123. XBindings can be removed by using the
  124. X.B unbind
  125. Xcommand.
  126. X.TP
  127. X.BR bind-macro " [string [expansion]]"
  128. XThis command is an abbreviation, which invokes the
  129. X.B bind
  130. Xcommand with the special function
  131. X.B macro
  132. Xas the second argument.
  133. XThe effect of binding a curses macro is that whenever the
  134. X.I string
  135. Xis typed in curses mode, the effect is the same as if the
  136. X.I expansion
  137. Xhad been typed instead.
  138. XA special sytax is provided for including non-printing (control)
  139. Xcharacters in both the
  140. X.I string
  141. Xand the
  142. X.IR expansion ;
  143. Xsee the CURSES INTERFACE section and the MACROS section for details.
  144. X.sp
  145. XIf no arguments are given,
  146. X.B bind-macro
  147. Xwill list the current curses mode macros.
  148. XIt is otherwise identical to
  149. X.in +4
  150. X.B bind
  151. X.I string
  152. X.B macro
  153. X.IR expansion .
  154. X.in -4
  155. X.TP
  156. X.B cd
  157. XChange the working directory to that specified, if given.
  158. XIf no directory is given, then changes to the user's home directory.
  159. X.TP
  160. X.BR cmd " [name [command]]"
  161. X.ns
  162. X.TP
  163. X.BR uncmd " name"
  164. X.rs
  165. XCommand line aliases are set and unset using these commands.
  166. XMore extensive information is given in the LINE-MODE INTERFACE section.
  167. X.B Uncmd
  168. Xmay take `*' as an argument to uncmd everything set.
  169. X.TP
  170. X.BR debug " [N]"
  171. XSet debugging level to N (1 by default).
  172. XWhen in debug mode, the user can see some of the flow of
  173. Xcontrol the program makes while executing.
  174. XThe intent of the debug level is for tracking down
  175. Xbugs with the program at specific locations.
  176. XOccasionally, the program may segmentation fault and core dump.
  177. XWhen this happens, the user can reenter the program,
  178. Xset the debugging level and recreate the problem.
  179. X.sp
  180. XIf the user suspects memory allocation problems, a debugging
  181. Xlevel of 2 or higher will prevent memory from being freed so that
  182. Xmemory bounds won't get overwritten.
  183. X.sp
  184. XIf the user suspects sendmail errors,
  185. Xa debugging level of 3 or higher will prevent sendmail from starting
  186. Xand outgoing mail is directed to the standard output instead of actually
  187. Xbeing sent.
  188. X.TP
  189. X.BR delete / undelete
  190. X.RB ( d / u )
  191. XTakes a message list as argument and marks them all as deleted.
  192. XDeleted messages will not be saved in
  193. X.IR mbox ,
  194. Xnor will they be available for most other commands.
  195. XIf the folder has not been updated, deleted messages can be recovered
  196. Xwith
  197. X.BR undelete .
  198. X.TP
  199. X.B dt
  200. XDeletes the current message and prints the next message.
  201. X.TP
  202. X.BR echo " [-n] [-h | -p] arguments"
  203. XEchoes all the arguments given on the command line, expanding variables
  204. Xand history references.  If the -n flag is given, then no newline is appended.
  205. XIf the -h flag is given, then echo looks for formatting parameters
  206. Xas if the "from" command were given on the "current" message.
  207. XIf the -p flag is given, then echo looks for formatting parameters
  208. Xas if your prompt were changed temporarily.
  209. X.sp
  210. XExamples:
  211. X.sp
  212. X.nf
  213. X.ti +2
  214. Xecho -h This message is from %a and is dated %d.
  215. X.br
  216. Xmight produce:
  217. X.ti +2
  218. XThis message is from island!argv and is dated Dec 14, 1988.
  219. X.sp
  220. X.ti +2
  221. Xecho -p There are %n new messages to read in %f.
  222. X.br
  223. Xmight produce:
  224. X.ti +2
  225. XThere are 5 new messages to read in /usr/spool/mail/argv.
  226. X.fi
  227. X.sp
  228. XNote that -h and -p cannot be specified together.
  229. X.TP
  230. X.B edit
  231. X.RB ( e ,
  232. X.BR v )
  233. XThis function lets you edit messages in your folder.  When editing messages,
  234. Xbe careful not to remove certain message headers such as Date or From or
  235. Xany others that looks important.  If you remove or change something you
  236. Xshouldn't have, you will be notified and the temporary file used to edit
  237. Xthe message will not be removed.
  238. X.TP
  239. X.BR eval " arg ..."
  240. XAs in most shells, the list of arguments to
  241. X.B eval
  242. Xis re-parsed and then executed as a command.
  243. XThis is useful primarily for causing multiple levels of variable expansion.
  244. X.TP
  245. X.B exit
  246. X.RB ( x )
  247. XReturns immediately to the login shell without
  248. Xmodifying the current folder or system spool directory.
  249. X.TP
  250. X.BR expand " alias-list"
  251. XAliases, given as arguments, are expanded as they would be if you
  252. Xwere to send mail to each.
  253. X.TP
  254. X.BR fkey " [string [command]]"
  255. X.ns
  256. X.TP
  257. X.BR unfkey " string"
  258. X.rs
  259. XWith no arguments,
  260. X.B fkey
  261. Xprints the values of the function keys.
  262. XThe function keys are used in the graphics tool mode only.
  263. XYou can set the values of function keys explicitly using the
  264. X.B fkey
  265. Xcommand, but the whole process is automated by using the function key
  266. Xinterface provided by the graphics mode.
  267. XBy default, the last key in each function key pad displays
  268. Xthe values of all the function keys in that set.
  269. XThere are the left, right and top set of keys.
  270. X.sp
  271. XFunction keys may be unset with the
  272. X.B unfkey
  273. Xcommand, or by using the function key interface.
  274. X.TP
  275. X.BR flags " [msg-list] [ [ + | \- ] [ D N O P R r S U ] ]"
  276. XThis command modifies the flag bits set on the listed messages.
  277. XIt should not normally be needed, but is provided to allow users, through
  278. Xthe
  279. X.B cmd
  280. Xfacility, to alter the ways that certain conditions are recorded.
  281. XMultiple flag bits may be set or modified at once.
  282. XThe modifiable flag bits are:
  283. X.sp
  284. X.nf
  285. X.ta 2i
  286. X.in +4
  287. XD    deleted
  288. XN    new
  289. XO    old
  290. XP    preserved
  291. XR    read
  292. Xr    replied-to
  293. XS    saved
  294. XU    unread
  295. X.in -4
  296. X.fi
  297. X.sp
  298. XIf a `+' or `\-' precedes the list of bits, the specified bits are turned
  299. Xon or off respectively, without modifying other bits.
  300. XIf no `+' or `\-' is given, then the list of bits is set explicitly and
  301. Xall other bits are lost.
  302. X.sp
  303. XMessage lists can be piped to the
  304. X.B flags
  305. Xcommand; for example, you may use
  306. X.sp
  307. X.nf
  308. X.ti +4
  309. Xcmd r 'reply \\!* | flags + r'
  310. X.fi
  311. X.sp
  312. Xto mark as
  313. X.I replied-to
  314. Xall messages included in a reply,
  315. X.TP
  316. X.BR folder " [\-N] [\-r] [!] [ %[user] | # | & | file ]"
  317. X.RB ( fo )
  318. XChange current folder.
  319. XWith no arguments, prints the name of the current folder.
  320. XThe arguments are:
  321. X.nf
  322. X.ta 1i
  323. X.in +2
  324. X\-N    No headers are displayed upon entering new folder
  325. X\-r    Set Read-Only mode (can't alter new folder)
  326. X!    If specified, the current folder is not updated
  327. X%[user]    Change to /usr/spool/mail/[user] (default is yours)
  328. X#    Switch back to the previous folder
  329. X&    Change folder to $mbox (default is ~/mbox)
  330. X.in -2
  331. X.fi
  332. X.sp
  333. XThis command can only appear in a pipeline if it is the first command;
  334. Xit returns a list of all the messages in the new folder.
  335. X.TP
  336. X.B folders
  337. XList the names of the folders in your folder directory.
  338. XYour folder directory is the directory
  339. X.I Mail
  340. Xin your home directory.
  341. XOr, you can set the variable
  342. X.B folder
  343. Xto specify another folder directory.
  344. X.br
  345. X.TP
  346. X.BR from " [ + | \- ]"
  347. X.RB ( f )
  348. XWith no arguments,
  349. X.I from
  350. Xwill print the current message's header.
  351. XIf given a message list,
  352. X.I from
  353. Xwill print the headers of those messages that are in the list.
  354. X.sp
  355. XThe special arguments `\-' and `+' can be given to move the
  356. Xcurrent message pointer to the previous or next message,
  357. Xrespectively, while also printing that message's header.
  358. XIf a message list was given in addition to `\-' or `+', then
  359. Xthe current message pointer will be set to the first or last
  360. Xmessage, respectively, in the message list given.
  361. XExamples:
  362. X.sp
  363. X.ti +2
  364. Xpick \-f Dan | from +
  365. X.sp
  366. Xwill print the headers of all messages that contain \*QDan\*U in
  367. Xin the author's name and set the current message pointer to
  368. Xthe last one of that kind in the list.
  369. X.sp
  370. X.ti +2
  371. Xfrom \- 10-30 {16}
  372. X.sp
  373. Xwill print the headers of messages 10 through 30 except for
  374. Xmessage 16 and set the current message pointer to 10.
  375. X.sp
  376. X.ti +2
  377. Xfrom +
  378. X.sp
  379. Xwill print the header of the message after the current message
  380. Xand increment the current message pointer to the next message.
  381. X.sp
  382. X.ti +2
  383. Xfrom $
  384. X.sp
  385. Xwill print the last message's header and not move the current
  386. Xmessage pointer.
  387. X.TP
  388. X.BR headers " [ [\-H][:c] ] [ + | \- ]"
  389. X.RB ( h ,
  390. X.BR z )
  391. XPrints a screenful of message headers listed in the
  392. Xcurrent folder.
  393. XIf a message number is given on the command line,
  394. Xthe first message of the screenful of messages will be
  395. Xthat message number.
  396. XThe `z' command is identical to the \*Qh +\*U
  397. Xcommand and remains for compatibility reasons.
  398. XThe variable
  399. X.B screen
  400. Xmay be set to tell how many headers are in a screenful.
  401. XIn the graphics tool mode, the variable
  402. X.B screen_win
  403. Xcontains the number of headers used in the headers subwindow.
  404. X.sp
  405. XA typical header may look like:
  406. X.sp
  407. X.ti +2
  408. X5 >N  argv@spam.istc.sri.com Feb 19, (10/278) Test
  409. X.sp
  410. XThis line indicates that it is message number 5 and the
  411. X.I >
  412. Xindicates that the \*Qcurrent message pointer\*U is pointing to this
  413. Xmessage.
  414. XThe next two positions indicate the message status.
  415. XThe first
  416. Xmay be one of, \*QN\*U (new and unread), \*QU\*U (old, but still
  417. Xunread), \*Q*\*U (deleted), \*QS\*U (saved), \*QP\*U (preserved),
  418. Xor \*Q \*U (read).
  419. XThe second position may have an \*Qr\*U if the message
  420. Xhas been replied to.
  421. X.sp
  422. XThe author of the example message header is
  423. X.IR argv@spam.istc.sri.com ,
  424. Xthe date is
  425. X.IR "Feb 19" ,
  426. Xthe number of lines in the message is
  427. X.IR 10 ,
  428. Xthe number of characters is
  429. X.I 278
  430. Xand the subject of the message is
  431. X.IR Test .
  432. XThe format of the message header shown here is described by
  433. Xthe string variable
  434. X.BR hdr_format .
  435. XThe example given above has a hdr_format of
  436. X.sp
  437. X.ti +2
  438. Xset hdr_format = "%25f %7d (%l/%c) %25s"
  439. X.sp
  440. XSee the description of
  441. X.B hdr_format
  442. Xin the VARIABLES section for more information on header formats.
  443. X.sp
  444. XYou can print a special subset of message headers by using the
  445. X.I \-H:c
  446. Xoption, where `c' is one of:
  447. X.nf
  448. X.in +2
  449. X.ta 1i
  450. X.if t .ta 1.5i
  451. Xa       all messages
  452. Xd       deleted messages
  453. Xn       new messages
  454. Xo       old messages
  455. Xr       replied to messages
  456. Xs       saved messages
  457. Xu       unread messages
  458. X.fi
  459. X.in -2
  460. XNote that the \-H is not required; \*Qheaders :c\*U is valid.
  461. X.sp
  462. XMore options to the
  463. X.B headers
  464. Xcommand include
  465. X.RI ` + '
  466. Xand
  467. X.RI ` \- '.
  468. XEach will print the next or previous screenful of message headers.
  469. XThe
  470. X.B z
  471. Xcommand can also be used; `z' alone will print the next
  472. Xscreenful (thus, the `+' is optional)
  473. Xand \*Qz \-\*U is equivalent to \*Qh \-\*U.
  474. X.sp
  475. XHeaders affects all the messages it displays, so piping may be done
  476. Xfrom the headers command.
  477. XPiping to the headers command causes the
  478. Xmessage headers affected by the previous command to be printed.
  479. XThis action is identical to piping to the
  480. X.B from
  481. Xcommand.
  482. X.TP
  483. X.BR help " [topic]"
  484. XHelp is provided on a per topic basis and on a general basis.
  485. XFor general help, just typing
  486. X.I help
  487. Xwill provide some general information as to how to get further help
  488. Xand a list of topics suggested for more specific help.
  489. XThere is also help provided for each command by using the \-?
  490. Xoption to most commands.
  491. XThis option will provide command line usage information as well as a
  492. Xdescription of what the command does and how to use it.
  493. X.TP
  494. X.BR history " [\-h] [\-r] [N]"
  495. XThis command displays the command history in chronological order; early
  496. Xcommands are printed first followed by more recent commands displayed last.
  497. XOption
  498. X.I \-h
  499. Xsuppresses printing of history event numbers with each history command.
  500. XOption
  501. X.I \-r
  502. Xreverses the order of the history events displayed.
  503. X.sp
  504. XIf a number
  505. X.I N
  506. Xis given, then that number of previous commands is
  507. Xechoed rather than the number set by the variable
  508. X.BR history .
  509. X.TP
  510. X.BR ignore / unignore " [header-list]"
  511. XDisplay or set a list of headers to be ignored when displaying messages.
  512. XWhen reading messages, all the message headers are displayed with the text
  513. Xbody of the message.
  514. XSince these message identifier fields are cumbersome and uninteresting
  515. Xin many cases, you can filter out unwanted headers by using this command.
  516. XFor example,
  517. X.sp
  518. X.ti +2
  519. Xignore Received Date Message-Id
  520. X.sp
  521. Xwill ignore the three specified fields.
  522. XThe command
  523. X.B unignore
  524. Xis used to reverse the effects of
  525. X.BR ignore .
  526. X.TP
  527. X.BR lpr " [\-Pname] [msg_list]"
  528. XTakes a message list and sends those messages, one by one, to the printer,
  529. Xeach separated by page feeds.
  530. XA default printer name is supplied if one is not specified on the
  531. Xcommand line (-Pprinter-name).
  532. XIf you have the variable
  533. X.B printer
  534. Xset, that printer name will be used.
  535. X.sp
  536. XIf the variable
  537. X.B print_cmd
  538. Xis set, the command described by that variable will be used instead
  539. Xof the default system command.
  540. XIn such cases, the -P option and the
  541. X.B printer
  542. Xvariable are ignored and the command is simply executed as is.
  543. X.TP
  544. X.BR ls " [flags]"
  545. XThis command duplicates the
  546. X.IR UNIX (TM)
  547. Xcommand
  548. X.I /bin/ls.
  549. XThe variable
  550. X.B lister
  551. Xdescribes flags to be passed to ls automatically.
  552. XBy default,
  553. X.I ls
  554. Xalways uses the -C flag (column output).
  555. X.TP
  556. X.BR mail " [flags] [recipient ...]"
  557. X.RB ( m )
  558. XSend mail to a list of users.
  559. XIf no recipient list is specified on the
  560. X.I Mush
  561. Xcommand line, then a \*QTo: \*U prompt will request one.
  562. XA list of recipients must be supplied.
  563. XThis implementation of
  564. X.I Mush
  565. Xsupports mailing to files and programs as recipients, but at least one
  566. Xlegitimate user must be specified.
  567. XFilenames must be full pathnames, thus, they must start with a `/' or there
  568. Xis no way to know whether a recipient is a pathname or a real user.
  569. XThe special characters `+' and `~' may precede pathnames since they are
  570. Xexpanded first to the user's folder directory (+), as described by the variable
  571. X.BR folder ,
  572. Xand the user's home directory (~).
  573. XMailing to programs is indicated by the pipe `|' character preceding the
  574. Xprogram name.
  575. XSince the user's path is searched, full pathnames are not required for
  576. Xprograms that lie in the user's PATH environment variable.
  577. X.sp
  578. XExample:
  579. X.sp
  580. X.ti +2
  581. Xmail username, /path/to/filename, "|program_name", +folder_name, ~user/mbox
  582. X.sp
  583. XOptions are:
  584. X.nf
  585. X.in +2
  586. X.if n .ta 1.5i
  587. X.if t .ta 1.8i
  588. X\-b addr-list    set list of blind carbon recipients
  589. X\-c addr-list    set list of carbon copy recipients
  590. X\-e    immediately enter editor (autoedit)
  591. X\-F    add random fortune to the end of message
  592. X\-f [msg-list]    forward msg_list (not indented)
  593. X\-h [msg-list]    include msg_list with headers
  594. X\-i [msg-list]    include msg_list into letter
  595. X\-s [subject]    prompt for subject [set subject explicitly]
  596. X\-v    verbose (passed to mail delivery program)
  597. X.in -2
  598. X.fi
  599. X.sp
  600. XThe verbose option may not be available depending on the mail transport
  601. Xagent on your system.
  602. X.sp
  603. XThe \-e flag causes you to enter the editor described by the variable
  604. X.BR visual .
  605. X.sp
  606. XThe \-i flag will include the current message into the body of the
  607. Xmessage you are about to send.
  608. XThe included message is indented by
  609. Xthe string \*Q> \*U or by the string described by the variables
  610. X.BR indent_str ,
  611. X.BR pre_indent_str ,
  612. Xand
  613. X.BR post_indent_str .
  614. XSee the VARIABLES section for more information on these string values.
  615. XIf a message list is given after the \-i option, then the messages
  616. Xdescribed by that list are included.
  617. XThe \-h option is identical to the \-i option except that the headers of
  618. Xthe message are also included.
  619. X.sp
  620. XThe \-s flag looks at the next argument and sets the subject to that
  621. Xstring.
  622. XIf the string is to contain spaces, enclose the entire subject
  623. Xin quotes.
  624. XIf there is no following argument, then the subject will
  625. Xbe prompted for.
  626. XThis flag is useful if the user:
  627. X.sp
  628. X.in +2
  629. X.nf
  630. X\(bu does not have the variable \fBask\fR set, or
  631. X\(bu wishes to change the subject used with \fBreply\fR
  632. X.in -2
  633. X.fi
  634. X.sp
  635. XThe subject is not prompted for and is ignored completely if the \-f flag
  636. Xis specified (see below).
  637. X.sp
  638. XThe \-f flag is for message forwarding only.
  639. XAn optional message list can be given just as the -i option has.
  640. XThe forward option does not allow you to edit the message(s) being forwarded
  641. Xunless the -e flag is also specified.
  642. XThe subject of the message (if available) is the same as the \fIcurrent\f
  643. Xmessage; it is not necessarily the subject of the message being forwarded.
  644. XThe subject of forwarded mail cannot be changed.
  645. XHowever, using the \-e flag
  646. Xwill allow the user to change the subject once in editing mode using the
  647. Xescape sequence, \*Q~s\*U.
  648. X.sp
  649. XForwarded mail that has not been edited by the user will contain special
  650. Xheaders such as
  651. X.sp
  652. X.ti +2
  653. XResent-To:
  654. X.ti +2
  655. XResent-From:
  656. X.sp
  657. Xand perhaps others, depending on your mail transport agent.
  658. XSendmail, for example, may add a number of other \*QResent-*\*U headers.
  659. X.TP
  660. X.BR map [ ! "] [string [expansion]]"
  661. X.ns
  662. X.TP
  663. X.BR unmap [ ! "] string"
  664. X.rs
  665. XThe
  666. X.B map
  667. Xcommand creates or lists macros for the line mode interface, and the
  668. X.B map!
  669. Xcommand creates or lists macros for the message composition mode.
  670. XIn either mode, macros act in such a way that, when
  671. X.I string
  672. Xis typed, the effect is the same as if
  673. X.I expansion
  674. Xhad been typed instead.
  675. XThe
  676. X.I string
  677. Xis usually one or two control characters, or a sequence sent by
  678. Xone of the \*Qfunction keys\*U of a particular terminal.
  679. XSee the MACROS section for the syntax used to specify the
  680. X.I string
  681. Xand the
  682. X.IR expansion ,
  683. Xand for comments on the interactions of macros in the same and in
  684. Xdifferent modes.
  685. X.sp
  686. XIf no arguments are given, these commands will display the list of
  687. Xmacros and expansions for the appropriate mode.
  688. XIf only a
  689. X.I string
  690. Xis given, they will display the
  691. X.I expansion
  692. Xassociated with that string for the appropriate mode.
  693. XOtherwise, they will create a macro, associating the given
  694. X.I expansion
  695. Xwith the specified
  696. X.IR string .
  697. X.sp
  698. XLine mode macros are unset with the
  699. X.B unmap
  700. Xcommand, and composition mode macros are unset with the
  701. X.B unmap!
  702. Xcommand.
  703. X.TP
  704. X.BR merge " [-N] folder-name"
  705. XMessages from the named folder are read into the current folder.
  706. XThe header summaries of the merged messages are printed unless the \-N
  707. Xoption is given (see the
  708. X.B folder
  709. Xcommand, above).
  710. XThis command can only appear in a pipeline if it is the first command;
  711. Xit returns a list of all the messages from the merged-in folder.
  712. X.TP
  713. X.BR my_hdr / un_hdr " [header]"
  714. XYou can create personalized headers in your outgoing mail using this command.
  715. X.sp
  716. X.nf
  717. XUsages:
  718. X.in +2
  719. X.ta 2.5i
  720. Xmy_hdr    print all your headers
  721. Xmy_hdr header    print value of header
  722. Xmy_hdr header: string    set header to string
  723. Xun_hdr header:    unset header
  724. X.in -2
  725. X.sp
  726. X.fi
  727. XTo set a header, the first argument must be a string
  728. Xthat contains no whitespace (spaces or tabs) and must end with
  729. Xa colon (:).
  730. XThe rest of the command line is taken to be the
  731. Xtext associated with the mail header specified.
  732. XIf any quotes are used in the header and the header itself is not set in
  733. Xquotes, then quotes should be escaped (preceded) by a backslash.
  734. XThis holds true for semicolons, pipe characters
  735. Xor any other metacharacter that
  736. X.I Mush
  737. Xmight interpret as a command line modifier.
  738. X.sp
  739. XIf the variable
  740. X.B no_hdrs
  741. Xis set, then your headers will not be added to outgoing messages,
  742. Xbut no headers will be unset.
  743. XThe
  744. X.B un_hdr
  745. Xcommand may take `*' as an argument to un_hdr everything set.
  746. X.TP
  747. X.BR pick " [flags] [<pattern>]"
  748. XAllows the user to select particular messages from a folder.
  749. XThe <pattern> is a \*Qregular expression\*U as described by
  750. X.IR ed .
  751. XIf no arguments are given, the previous expression searched for is used.
  752. XYou can search for messages from a user, for a particular subject line,
  753. Xbetween certain dates, and limit searches to a range of messages.
  754. XYou can also find all messages that do not
  755. Xmatch the same arguments mentioned above.
  756. X.sp
  757. X.nf
  758. XOptions:
  759. X.ta 1.5i
  760. X.in +2
  761. X\-ago <format>    search for messages relative to today's date.
  762. X\-d [+|\-]date    messages sent on or [+ after] [`\-' before] date.
  763. X\-f    search for pattern in \*QFrom\*U field only.
  764. X\-h header    search for pattern in specified header only.
  765. X\-i    ignore case of letters when searching.
  766. X\-r msg_list    search only the listed messages.
  767. X\-s    search for pattern in \*QSubject\*U field only.
  768. X\-t    search for pattern in \*QTo\*U field only.
  769. X\-x    select messages not containing the pattern.
  770. X.in -2
  771. X.fi
  772. X.sp
  773. XThe
  774. X.I \-ago
  775. Xoption can be abbreviated as
  776. X.IR \-a .
  777. XOnly one of \-a, \-d, \-f, \-h, \-s and \-t can be specified at once.
  778. XEntire messages are scanned for the <pattern>
  779. Xunless \-a, \-d, \-f, \-h, \-s or \-t is specified.
  780. XMessages marked for deletion are also searched.
  781. XNo patterns can be specified with the \-a or \-d options.
  782. X.sp
  783. XFor the \-d option, \*Qdate\*U is of the form:
  784. X.sp
  785. X.ti +2
  786. Xmonth/day/year
  787. X.sp
  788. Xwith an optional `\-' to specify that the messages of interest are those
  789. Xolder than that date.
  790. XOmitted fields of the date default to today's values.
  791. XExamples of selecting on date:
  792. X.nf
  793. X.in +2
  794. X.ta 2.0i
  795. X.sp
  796. Xpick \-d 4/20    on April 20, this year.
  797. Xpick \-d \-/2/85    on or before the 2nd, this month, 1985.
  798. Xpick \-d +5/4    on or after May 4 of this year.
  799. Xpick \-d /    today only.
  800. X.fi
  801. X.in -2
  802. X.sp
  803. XAt least one `/' char must be used in a date.
  804. XThere is no strong date checking; 2/30 would be considered a valid date.
  805. X.sp
  806. XFor the \-ago option, the format is very simple.  Specify the number of
  807. Xdays followed by the word \*Qdays\*U, or the number of weeks followed by
  808. Xthe word \*Qweeks\*U, and so on with months and years.  Truncation is allowed,
  809. Xsince only the first character is examined, so all of the following are
  810. Xequivalent:
  811. X.sp
  812. X.in +2
  813. X.nf
  814. Xpick \-ago 1 day, 2 weeks
  815. Xpick \-ago 2Weeks 1Day
  816. Xpick \-ago 2w,1day
  817. Xpick \-a 2w1d
  818. X.fi
  819. X.in -2
  820. X.sp
  821. XThese examples will find all messages that are exactly 2 weeks and 1 day
  822. Xold.  All \*Qago\*U dates collapse into \*Qday\*U time segments.  This
  823. Xmeans that months are 30.5 days long.  If more precise date selection is
  824. Xrequired, use the \-d option and specify specific dates.
  825. X.sp
  826. XAlso note that the \-ago option allows
  827. Xthe \*Qbefore\*U (\-) and \*Qafter\*U (+)
  828. Xarguments.  Thus, you may pick all messages older than 1 week with:
  829. X.sp
  830. X.ti +2
  831. Xpick \-ago \-1 week
  832. X.sp
  833. XOther examples of
  834. X.B pick:
  835. X.sp
  836. X.ti +2
  837. Xpick \-d 2/5/86 | pick \-d \-2/5/87 | pick \-s "mail stuff" | lpr
  838. X.sp
  839. Xwill find all the messages between the dates February 5, 1986, and
  840. XFebruary 5, 1987, that contain the subject "mail stuff" and send them
  841. Xto the printer.
  842. X.sp
  843. X.ti +2
  844. Xpick -s Re: | delete
  845. X.sp
  846. Xdeletes messages that have \*QRe:\*U in the Subject header.
  847. X.sp
  848. X.ti +2
  849. Xfolder +project | pick \-f frank
  850. X.sp
  851. XFinds all messages from frank in the folder described by +project.
  852. X.sp
  853. X.ti +2
  854. Xpick \-h return-path ucbvax
  855. X.sp
  856. XSearches all messages that have the header "Return-Path:" and determines
  857. Xif the string \*Qucbvax\*U is in the header.
  858. XNote that case sensitivity
  859. Xapplies only to the pattern searched, not the header itself.
  860. X.sp
  861. X.ti +2
  862. Xpick \-ago +1w | save +current
  863. X.sp
  864. XThis finds all messages that are a week or less old and saves them in the file
  865. Xcalled \fIcurrent\fR, which is found in the user's \fIfolder\fR variable.
  866. X.TP
  867. X.BR pipe " [msg-list] unix-command"
  868. XAllows the user to send the texts of a list of messages to a
  869. X.IR UNIX (TM)
  870. Xcommand.
  871. XThe list of messages may either be given explicitly or may come from
  872. Xa mush pipeline (see \*QCommand Pipes\*U under FEATURES, and also the
  873. XLINE-MODE INTERFACE section).
  874. XIf a list is neither given nor piped, the current message is used.
  875. XHeaders which have not been ignored are considered part of the message
  876. Xtext for purposes of this command.
  877. XFor example,
  878. X.sp
  879. X.in +4
  880. X.nf
  881. Xpipe 3 5 7 patch
  882. X.fi
  883. X.in -4
  884. X.sp
  885. Xsends the text of messages 3, 5 and 7 to the
  886. X.I patch
  887. Xutility.
  888. X.sp
  889. XThis command can also be invoked as
  890. X.BR Pipe
  891. X(note capitalization), in which case only the body of the messages,
  892. Xand none of the message headers, are sent to the unix command.
  893. X.sp
  894. XWhen the variable
  895. X.B unix
  896. Xis set,
  897. X.IR UNIX (TM)
  898. Xcommands can appear anywhere
  899. X.I except as the first command
  900. Xin a mush pipeline without explicitly using
  901. X.BR pipe .
  902. XHowever, it is still necessary to specify
  903. X.B Pipe
  904. Xin order to exclude all headers.
  905. X.TP
  906. X.B preserve
  907. X.RB ( pre )
  908. XSaves a message list in your spool directory rather than
  909. Xyour mailbox unless it has been explicitly deleted.
  910. XThe variable
  911. X.B hold
  912. Xcauses all messages to be held in your spool directory automatically.
  913. X.TP
  914. X.B print
  915. X.RB ( p ,
  916. X.BR type ,
  917. X.BR t )
  918. XTakes a message list and displays each message on the user's terminal.
  919. XIf the first letter of the command is a capital letter (`P' or `T')
  920. Xthen \*Qignored\*U headers are not ignored
  921. X.I provided
  922. Xthat the variable
  923. X.B alwaysignore
  924. Xis not set.
  925. XIf this variable is set, the ignored headers will be
  926. Xignored regardless of the command used to display the message.
  927. XSee the
  928. X.B ignore
  929. Xcommand for more information about ignored message headers.
  930. X.sp
  931. XThe `+' and the `\-' keys can be used to display the \*Qnext\*U
  932. Xand \*Qprevious\*U messages respectively.
  933. XThe `+' key has the caveat that the
  934. Xmessage is not paged at all and none of the messages headers are displayed.
  935. X.TP
  936. X.B pwd
  937. XPrints the current working directory.
  938. X.TP
  939. X.B quit
  940. X.RB ( q )
  941. XUpdates the current folder and exits from
  942. X.IR Mush .
  943. XIf the variable \*Qhold\*U is set, all messages not marked for deletion are
  944. Xsaved in the spool directory.
  945. XOtherwise, messages that have been read are saved to
  946. X.I ~/mbox
  947. Xor to the file described by the string variable
  948. X.BR mbox .
  949. XMessages marked for deletion are discarded.
  950. XUnread messages go back to the spool directory in all cases.
  951. X.TP
  952. X.BR reply / replyall " [msg_list] [-r path] [flags] [users]"
  953. X.RB ( r / R )
  954. XMessages are replied to by sending mail to the sender of each message
  955. Xin the given message list.
  956. XThe command
  957. X.B replysender
  958. Xis equivalent to
  959. X.BR reply .
  960. X.B Replyall
  961. Xresponds to all the recipients as well as the sender of the message.
  962. XThese commands understand all the same flags as the
  963. X.B mail
  964. Xcommand.
  965. X.sp
  966. XWhen constructing a return mail address to the author of a message,
  967. X.B reply
  968. Xsearches for special mail headers in the author's message that
  969. Xindicate the most efficient mail path for return mail.
  970. X.I Mush
  971. Xwill search for the \*QReply-To:\*U, \*QReturn-Path:\*U,
  972. Xand \*QFrom:\*U headers, in that order, by default.
  973. X.sp
  974. XIf none of these fields are found in the message, the first line of the
  975. Xmessage is parsed if possible;
  976. Xthis \*QFrom \*U line is different from the \*QFrom: \*U line.
  977. XIf the user wishes to change the order or the actual fields to search for
  978. Xreturn paths, then the variable
  979. X.B reply_to_hdr
  980. Xmay be set to a list of headers to be used (in the order specified).
  981. XIf it is set, but has no value, the first \*QFrom \*U line is used
  982. Xregardless of what headers the author's message contains.
  983. XThe \*QFrom \*U line may be specified explicitly as an item in the
  984. Xlist of reply-to headers by specifying the header:
  985. X.B From_.
  986. XSee the VARIABLES section for more information about
  987. X.B reply_to_hdr.
  988. X.sp
  989. XWhen replying to all recipients of the message using the
  990. X.B replyall
  991. X.RB ( R )
  992. Xcommand, only the original author's address can be obtained from
  993. Xthe message headers.
  994. XThere is no way determine the best path to the
  995. Xother recipients of the message from message headers aside from taking
  996. Xtheir addresses directly from the \*QTo:\*U and \*QCc:\*U lines.
  997. X.sp
  998. XExample:
  999. X.sp
  1000. X.ti +2
  1001. Xreplyall 3,4,5 -i 4,5 7 -s response mail-group
  1002. X.sp
  1003. XHere, messages 3, 4 and 5 are replied to (all the authors are obtained
  1004. Xfrom each of those messages as well as the recipients from those messages)
  1005. Xand the text from messages 4, 5 and 7 are included in the body of the reply.
  1006. XThe subject is set to "response" and the alias mail-group is appended to
  1007. Xthe list of recipients for this message.
  1008. X.sp
  1009. XThe -r flag will prepend the path to each recipient in the address list
  1010. Xwith the indicated path.  This overrides the value of \fBauto_route\fR,
  1011. Xbut has the exact same functionality.  See the explanation of the variable
  1012. Xin the VARIABLES section.  Also see the MAIL ADDRESSES section for more
  1013. Xinformation concerning replying to messages.
  1014. X.nf
  1015. X.TP
  1016. X.BR save / write / copy " [!] [-s | -a] [msg-list] [filename / directory]"
  1017. X.fi
  1018. X.RB ( s / w )
  1019. XWith no arguments,
  1020. X.B save
  1021. Xand
  1022. X.B write
  1023. Xwill save the current message to the file
  1024. X.I mbox
  1025. Xin the user's home directory (or the file specified by the
  1026. X.B mbox
  1027. Xvariable).
  1028. XIf a message list is given, then the messages specified by
  1029. Xthe list are saved.
  1030. XIf a filename is given, then that filename is used instead of mbox.
  1031. XThe -s options forces the filename used to be that of the subject of
  1032. Xthe message.  Similarly, the -a option causes the filename used to be
  1033. Xthat of the author of the message being saved.  If more than one message
  1034. Xis being saved, the subject or author name used is that of the smallest
  1035. Xmessage number (since message lists have no order of precedence).  With
  1036. Xthese two options, a directly name may be given to specify a directory
  1037. Xother than the current directory.
  1038. X.sp
  1039. XIf the file exists and is writable, the specified command
  1040. Xwill append each message to the end of the file.
  1041. XIf the `!' is given, then the file is overwritten causing whatever contents it
  1042. Xcontains to be lost.
  1043. XThe
  1044. X.B write
  1045. Xcommand differs from
  1046. X.B save
  1047. Xand
  1048. X.B copy
  1049. Xin that the message headers are
  1050. X.I not
  1051. Xsaved in the file along with the body of text.
  1052. X.sp
  1053. XIf the current folder is the system mailbox, then saved messages are
  1054. Xmarked for deletion when the user exits using the
  1055. X.B quit
  1056. Xcommand.
  1057. XIf the variable
  1058. X.I keepsave
  1059. Xis set or the current folder is not the system mailbox, then messages are
  1060. Xnot marked for deletion.
  1061. XThe
  1062. X.B copy
  1063. Xcommand is is like
  1064. X.B save
  1065. Xexcept that messages are never marked for deletion, whether or not
  1066. X.B keepsave
  1067. Xis set.
  1068. X.sp
  1069. XBecause message lists are used to determine the messages to be saved,
  1070. Xif the user wishes to save messages to a file that begins with a digit
  1071. Xor any other message list metacharacter, a backslash should precede
  1072. Xthe filename to escape the message list expansion routine.
  1073. XThe backslash will not become a part of the filename.
  1074. X.TP
  1075. X.BR saveopts " [file]"
  1076. XThe complement of
  1077. X.BR source ,
  1078. X.BR saveopts ,
  1079. Xwill save all settable variables, aliases
  1080. Xand cmd's in the initialization file.
  1081. X(See the INITIALIZATION
  1082. Xsection for more information on initialization files.)
  1083. XIf an argument is given, that file is used.
  1084. XBeware that this will overwrite files, so any \*Qif\*U expressions
  1085. Xwill be lost, as will settings that have changed since entering
  1086. X.IR Mush .
  1087. XUsing saveopts is highly discouraged
  1088. Xand is intended for the naive user only.
  1089. X.TP
  1090. X.BR set " [[?]variable [= value]]"
  1091. X.ns
  1092. X.TP
  1093. X.BR unset " variable"
  1094. X.rs
  1095. XWith no arguments, prints all variable values.
  1096. XOtherwise, sets option.
  1097. XArguments are of the form \*Qoption=value\*U (whitespace is allowed).
  1098. XBoolean expressions need not have \*Q=value\*U associated in the command.
  1099. X.sp
  1100. XThe special command
  1101. X.sp
  1102. X.ti +2
  1103. Xset ?all
  1104. X.sp
  1105. Xwill print all known variables utilized by the program and a brief
  1106. Xdescription of what they do.
  1107. XThe user may set and manipulate his own set of variables, but internal
  1108. Xvariables that are utilized by the program are the only ones displayed.
  1109. X.sp
  1110. XThe command
  1111. X.sp
  1112. X.ti +2
  1113. Xset ?variable_name
  1114. X.sp
  1115. Xwill print the same information for one variable instead of all variables.
  1116. XYou may unset everything by issuing the command \*Qunset *\*U.
  1117. X.sp
  1118. XIt is possible to set a variable to a list of messages returned by another
  1119. Xcommand by using the piping mechanism.  For example,
  1120. X.sp
  1121. X.ti +2
  1122. Xpick \-s Status Reports | set reports
  1123. X.sp
  1124. XThe variable, reports, now contains a message list which can be used
  1125. Xas the message list argument to any commands which accepts one.
  1126. X.sp
  1127. X.ti +2
  1128. Xmail \-i $reports boss
  1129. X.sp
  1130. XThis command will mail to \*Qboss\*U and include all the messages held
  1131. Xin the \fIreports\fP variable.
  1132. X.TP
  1133. X.BR sh " [command]"
  1134. XInvokes an interactive version of the shell.
  1135. XThe shell spawned is described by the variable
  1136. X.BR shell .
  1137. XIf the optional argument
  1138. X.B command
  1139. Xis given, then that command is executed under the Bourne Shell.
  1140. XIf the special character `&' is at the end of any shell command,
  1141. Xthen the command will be executed in background.
  1142. X.TP
  1143. X.BR source " [file]"
  1144. XRead
  1145. X.I Mush
  1146. Xcommands from a file.
  1147. XIf no filename is specified, the files searched
  1148. Xfor are .mushrc or .mailrc in the user's home directory.
  1149. XIf the environment variable MAILRC is set, then that file is sourced.
  1150. XIf a filename is given on the command line, that file is sourced.
  1151. XSee the INITIALIZATION heading and the
  1152. X.B home
  1153. Xvariable descriptions for more information.
  1154. X.TP
  1155. X.BR sort " [\-] [a | d | s | S | R]"
  1156. XThis command
  1157. Xwill sort messages according to author, date, status or subject
  1158. X(with or without considering the "Re: ", in replied messages).
  1159. XIn addition, the messages can be sorted in reverse order (same arguments).
  1160. X.sp
  1161. X.nf
  1162. XOptions:
  1163. X.in +2
  1164. X.ta 1i
  1165. X\-    reverse sort order
  1166. Xa    sort by author (alphabetical)
  1167. Xd    sort by date
  1168. Xs    sort by subject ignoring \*QRe:\*U
  1169. XR    sort by subject (alphabetical)
  1170. XS    sort by message status
  1171. X.in -2
  1172. X.fi
  1173. X.sp
  1174. XNote that only one argument (except for the `\-'), may be used.
  1175. XBy default (no arguments),
  1176. X.B sort
  1177. Xsorts messages by
  1178. X.IR status .
  1179. XNew, unread messages are first, followed by preserved messages,
  1180. Xand finally deleted messages are placed at the end of the list.
  1181. X.sp
  1182. XWhen sorting by date, the boolean variable
  1183. X.B date_received
  1184. Xis checked.  If it is set, then sorting goes by date received.
  1185. XOtherwise (default), sorting is by date sent by the original author.
  1186. X.sp
  1187. XIf the variable
  1188. X.I sort
  1189. Xis set, messages are sorted each time the user's system mailbox is
  1190. Xread as the current folder.
  1191. XThe
  1192. X.I sort
  1193. Xvariable can be set either to nothing or to legal "sort" arguments.
  1194. X.sp
  1195. XSubsorting can be achieved by using the piping mechanism intrinsic to
  1196. Xthe line mode interface;
  1197. Xno other interface allows subsorting \*Qdirectly\*U.
  1198. XEach interface may allow subsorting if appropriate actions are taken,
  1199. Xas discussed below.
  1200. X.sp
  1201. XTo subsort messages, the folder must be in a particular order to begin
  1202. Xwith.
  1203. XTo sort mail by author and then by subject heading, you would
  1204. Xhave to first sort by author:
  1205. X.sp
  1206. X.ti +2
  1207. Xsort a
  1208. X.sp
  1209. XNow that the messages are in order according to author, sorting a
  1210. Xsublist of messages is done using pipes:
  1211. X.sp
  1212. X.ti +2
  1213. Xpick \-f island!argv@sun.com | sort s
  1214. X.sp
  1215. XThis finds all messages from the user \*Qisland!argv@sun.com\*U
  1216. Xand sorts them by subject.
  1217. XSince these messages are already grouped together via the
  1218. Xprevious sort command, the sorting by subject (s) will restrict itself
  1219. Xto such messages.
  1220. XYou may specify the exact message list by specifying
  1221. Xthat message list on the command line and using a pipe:
  1222. X.sp
  1223. X.ti +2
  1224. X10\-. | sort d
  1225. X.sp
  1226. XThis command means to sort the messages from 10 to the current message
  1227. Xaccording to the date.
  1228. X.sp
  1229. XTo specify subsorting from with the curses interface, the temporary
  1230. Xcurses escape key must be used (the colon `:') and the command issued
  1231. Xat the `:' prompt (as if giving an \*Qex\*U command to \*Qvi\*U).
  1232. XWhen the command is finished, the \*Q...continue...\*U prompt is given and
  1233. Xthe user may continue or return to the top level of the curses mode.
  1234. X.sp
  1235. XIn the tool interface, the user must map a function key to the desired
  1236. Xcommand.
  1237. XSelect the \*QOpts\*U icon with the right mouse button, choose
  1238. Xthe menu item labeled \*Qfunction keys\*U and use the interface provided
  1239. Xto set a function key to the desired piped mechanism.
  1240. X.TP
  1241. X.B stop
  1242. XFor systems with job control, stop will cause
  1243. X.I Mush
  1244. Xto send a SIGTSTP to itself.
  1245. XThe command was introduced to facilitate
  1246. Xthe stop-job action from a complex command line alias rather than the user
  1247. Xhaving to type his stop character explicitly.
  1248. X.TP
  1249. X.B top
  1250. XTakes a message list and prints the top few lines of each.
  1251. XThe number of lines printed is controlled by the variable
  1252. X.B toplines
  1253. Xand defaults to the size of the value of the variable
  1254. X.B crt.
  1255. XThis command is ignored in the tool mode.
  1256. X.TP
  1257. X.BR undigest " [-m] [msg_list] [filename]"
  1258. XA \*Qdigest\*U is a mail message which is a collection of other mail messages
  1259. Xmailed to a \*Qmoderator\*U by other users.  The moderator compiles all the
  1260. Xmessages into a folder and sends the result to all the subscribers of the
  1261. Xmailing list.  The
  1262. X.B undigest
  1263. Xcommand disassembles the entries into the set of messages which comprises
  1264. Xthe digest.
  1265. X.sp
  1266. XThe -m option will merge these messages into the current folder.  Otherwise,
  1267. Xif a filename is specified, a new folder is created and the user can change
  1268. Xfolders to read the messages separately.
  1269. X.sp
  1270. XIf a message list is specified, each digest is disassembled to the same
  1271. Xfilename (if given).  If no filename is given and the user did not request
  1272. Xa merge, then a temporary file is made.
  1273. X.sp
  1274. X.SH VARIABLES
  1275. XShell variables are controlled via the
  1276. X.B set
  1277. Xand
  1278. X.B unset
  1279. Xcommands.
  1280. XOptions may be either boolean, in which case it is only
  1281. Xsignificant to see whether or not they are set;
  1282. Xstring, in which case the actual value is of interest;
  1283. Xor numerical, in which case the numerical value is important.
  1284. XSome variables may have attributes
  1285. Xof boolean and string at the same time.
  1286. X.PP
  1287. XIf you or the program references a variable that is not explicitly set,
  1288. Xthen the environment variables are checked and a pointer to that data
  1289. Xis returned.
  1290. X.PP
  1291. XCertain variables that happen to be set to pathnames can be modified
  1292. Xby one of two variable modifiers.
  1293. XThe modifiers `:h' and `:t' may be applied to the variable names.
  1294. XThe current implementation allows only one `:' modifier on each `$' expansion.
  1295. X.TP
  1296. X:t
  1297. XThe variable is treated as a file path name, and the name of the file
  1298. X(the \*Qtail\*U of the path) is substituted for the variable.
  1299. XThat is, everything to the right of the last `/'
  1300. Xis returned.
  1301. X.TP
  1302. X:h
  1303. XThe variable is treated as a path name, and the \*Qhead\*U of the pathname
  1304. Xis substituted for the variable.
  1305. XThat is, everything up to, but not including, the last `/' is returned.
  1306. X.PP
  1307. XThus, you could set your prompt:
  1308. X.sp
  1309. X.nf
  1310. X.ti +2
  1311. Xcmd fo 'fo \!*; set prompt = "! [$thisfolder:t] "'
  1312. X.fi
  1313. X.sp
  1314. XHere, whenever you change folders, your prompt will tell you the name
  1315. Xof the folder you're in.
  1316. X.PP
  1317. XFollowing is a list of all predefined variables.
  1318. X.TP
  1319. X.B alwaysignore
  1320. X(Boolean)
  1321. XIf set, the mail headers set by the
  1322. X.B ignore
  1323. Xcommand are always ignored.
  1324. XNormally, ignored headers are not ignored when sending messages to
  1325. Xthe printer, when interpolating messages into letters with ~f or ~H,
  1326. Xwhen the `P' or `T' command is given (see the \fBprint\f command),
  1327. Xor with the \-h flag to the
  1328. X.B mail
  1329. Xor
  1330. X.B reply
  1331. Xcommands.
  1332. XSetting
  1333. X.B alwaysignore
  1334. Xwill ignore those headers even in the situations mentioned here.
  1335. XNo headers can be ignored during updates and when using the
  1336. X.B save
  1337. Xcommand since the user may ignore headers that are required by
  1338. X.I Mush
  1339. Xor any other mail system to read those folders.
  1340. X.sp
  1341. XAlso see the
  1342. X.B ignore
  1343. Xcommand for more information.
  1344. X.TP
  1345. X.B ask
  1346. X(Boolean)
  1347. XIf set, you will be prompted for a subject header for outgoing mail.
  1348. XIf not set, the Subject header will be displayed as a blank header.
  1349. XUse the tilde escape \*Q~s\*U to set the header once in the message
  1350. Xor specify the \-s option on the
  1351. X.B mail
  1352. Xcommand line at the
  1353. X.I Mush
  1354. Xprompt.
  1355. X.TP
  1356. X.B askcc
  1357. X(Boolean)
  1358. XIf set, you will be prompted for a Cc (carbon copy) list when you are
  1359. Xfinished editing a letter to be sent.
  1360. XIn the tool mode, this is ignored; the Cc list
  1361. Xis always prompted for after the Subject prompt.
  1362. X.TP
  1363. X.B autodelete
  1364. X(Boolean)
  1365. XWhen exiting mail, all messages that have been read
  1366. X.I "regardless of whether they have been marked for deletion"
  1367. Xare removed.
  1368. XOnly messages that haven't been read or that have been marked as
  1369. X.B preserved
  1370. Xare not removed.
  1371. X.TP
  1372. X.B autoedit
  1373. X(Boolean)
  1374. XIf set, you are automatically put into your editor whenever you
  1375. Xsend or reply to mail.
  1376. X.TP
  1377. X.B autoinclude
  1378. X(Boolean)
  1379. XWhen replying to any mail, a copy of the message being replied to
  1380. Xis automatically inserted into your message body indented by
  1381. Xthe string described by the variable
  1382. X.BR indent_str .
  1383. X.TP
  1384. X.B autoprint
  1385. X(Boolean)
  1386. XAfter you delete a message, the next message is printed automatically.
  1387. X.TP
  1388. X.B auto_route
  1389. X(String)
  1390. XIf set boolean (not to a string), all the recipients in a message that
  1391. Xis being replied to (via \fBreplyall\fR), will be routed through the path
  1392. Xback to the original author.
  1393. X.sp
  1394. XFor example, if the original sender of a message came from the remote host
  1395. X.B c3p0
  1396. Xand the list of recipients looked like
  1397. X.sp
  1398. X.nf
  1399. X.in +2
  1400. XFrom: c3p0!user1
  1401. XTo: yourhost!you
  1402. XCc: r2d2!user2, r2d2!user3
  1403. X.in -2
  1404. X.fi
  1405. X.sp
  1406. Xthen clearly, \*Quser1\*U on the machine c3p0 can talk to your machine
  1407. Xand the machine named r2d2.
  1408. XHowever, you would not be able to respond to those users if your machine
  1409. Xdid not exchange UUCP mail with the host r2d2.
  1410. X.sp
  1411. X.I Mush
  1412. Xwill attempt to solve this problem by reconstructing the addresses
  1413. Xfor \*Quser2\*U and \*Quser3\*U according to the address of the original
  1414. Xsender, \*Qc3p0\*U.
  1415. XThe new addresses for \*Quser2\*U and \*Quser3\*U should therefore become
  1416. X.sp
  1417. X.ti +2
  1418. Xc3p0!r2d2!user2, c3p0!r2d2!user3.
  1419. X.sp
  1420. XIf your machine not only talks to c3p0,
  1421. Xbut talks to r2d2 as well, it becomes unnecessary to route the mail
  1422. Xthrough both c3p0 and r2d2.
  1423. XSo, the variable
  1424. X.B known_hosts
  1425. Xmay be set to a list of hosts which you know your machine to have
  1426. XUUCP mail connections with.
  1427. XThis list is checked when constructing mail addresses for replies only and
  1428. Xthe shortest path is made by removing from the UUCP path those hosts
  1429. Xthat do not need to be called or are redundant.
  1430. XSee the entry for
  1431. X.B known_hosts
  1432. Xfor more information.
  1433. X.sp
  1434. XIf
  1435. X.B auto_route
  1436. Xis set to a specific \fBpathname\fR (host names separated by !'s),
  1437. Xall addresses in the reply will have this route prepended to their addresses.
  1438. XThis ignores the original path of the author.  This is quite useful for
  1439. Xhosts which talk uucp to a node which is connected to the internet or uunet
  1440. Xsince both of those machines tend to be one-hop away from all other hosts
  1441. X(or reroute accordingly).  For example, if a message was addressed like so:
  1442. X.sp
  1443. X.in +2
  1444. X.nf
  1445. XTo: root@ucbvax.berkeley.edu, argv@island.uucp
  1446. XCc: ucbcad!foo!bar
  1447. X.sp
  1448. X.fi
  1449. X.in -2
  1450. XIf auto_route were set to "ucbcad", then replies to this address would be
  1451. Xdirected addressed like so:
  1452. X.sp
  1453. X.in +2
  1454. X.nf
  1455. XTo: ucbcad!ucbvax.berkeley.edu!root, ucbcad!island.uucp!argv
  1456. XCc: ucbcad!foo!bar
  1457. X.sp
  1458. X.fi
  1459. X.in -2
  1460. X.sp
  1461. XThis assumes that the host in question talks uucp with ucbcad.  This example
  1462. Xdemonstrates several things.  First, notice that all addresses are converted
  1463. Xto uucp-style format.  Whenever routing is changed, the format is converted
  1464. Xlike this.  Secondly, note that the Cc: line did not change.  This is because
  1465. Xall redundant hostnames from UUCP pathnames are removed
  1466. Xto avoid unnecessary UUCP connections and speed up mail delivery.
  1467. X.sp
  1468. XAnother example of how auto_route truncates UUCP paths:
  1469. X.sp
  1470. X.ti +2
  1471. Xpixar!island!sun!island!argv
  1472. X.sp
  1473. XHere, mail was probably originally sent to users at pixar and sun from
  1474. Xsomewhere undetermined now.
  1475. XSince sun and pixar do not talk to each other, the users on those machines may
  1476. Xhave responded to mail creating the type of addresses stated above.
  1477. XHere, it can be seen that we can reduce the path to the host
  1478. X.IR island :
  1479. X.sp
  1480. X.ti +2
  1481. Xpixar!island!argv
  1482. X.sp
  1483. XSee the MAIL ADDRESSES section for more detailed information
  1484. Xabout legal mail addresses.
  1485. X.sp
  1486. XNote that the -r flag to \fBreply\fR and \fRreplyall\fR overrides the
  1487. Xvalue of \fBauto_route\fR.
  1488. X.TP
  1489. X.B autosign
  1490. X(Boolean/string)
  1491. XAppend a signature to outgoing mail.
  1492. XIf this variable is set, but not to a string (e.g., boolean-true)
  1493. Xthen the file ~/.signature is used.
  1494. X.sp
  1495. XOtherwise, the variable is interpreted in one of three ways.
  1496. XBy default, the string is interpreted as a pathname relative to the
  1497. X.I current
  1498. Xdirectory.
  1499. XFor this reason, it is advisable to use full pathnames here.
  1500. XAs usual, the special characters `~' and `+' are expanded.
  1501. XIf a file is found, it is opened and its contents are read into the
  1502. Xmessage buffer.
  1503. X.sp
  1504. XIf the variable is set to a string that begins with `$', then that string
  1505. Xis interpreted as a user-definable variable and is expanded and appended
  1506. Xto the letter.
  1507. X.sp
  1508. XFinally, if the variable is set to a string that begins with a backslash (\\)
  1509. Xthen the string itself (minus the `\\' character) is used; no expansion
  1510. Xis done and no files are read.
  1511. X.sp
  1512. XIn the latter two cases, it is advisable to set the variable using single
  1513. Xquotes to avoid expanding the variable beforehand or eliminating the
  1514. Xbackslash.
  1515. XExamples:
  1516. X.sp
  1517. X.nf
  1518. X.ti +2
  1519. Xset autosign = '$foo'
  1520. X.ti +2
  1521. Xset autosign = '\\  Dan Heller island!argv@ucbcad.berkeley.edu'
  1522. X.fi
  1523. X.sp
  1524. X.BR Warning :
  1525. Xif redirection from the calling shell is used,
  1526. Xno signature or fortune will be added to outgoing mail.
  1527. XFor example,
  1528. X.sp
  1529. X.ti +2
  1530. X% mush \-s report manager < report_file
  1531. X.sp
  1532. XIn this command, mail is being sent to the user \*Qmanager\*U and the
  1533. Xsubject is set to \*Qreport\*U and the file \*Qreport_file\*U is being
  1534. Xredirected as input.  In this case, there will be \fIno\fR signature
  1535. Xappended.
  1536. X.TP
  1537. X.B autosign2
  1538. X(String)
  1539. XThis alternate signature is available for special cases where the default
  1540. Xsignature is not desired or if no signature is desired for special addresses
  1541. Xor if only special addresses require a signature.
  1542. XThe format for this variable is:
  1543. X.sp
  1544. X.ti +2
  1545. Xautosign2 = \*Qaddress1, address2, ... : <signature>\*U
  1546. X.sp
  1547. XEach address can be one of these types:
  1548. X.TP
  1549. X1)  address
  1550. XLegal mailing addresses that do not contain comment
  1551. Xfields (see the sections MAIL ADDRESSES for more information on legitimate
  1552. Xmail addresses).
  1553. X.TP
  1554. X2)  *username
  1555. XIf the username is present on the recipient list, regardless of what
  1556. Xremove site the user may reside (including locally), the pattern matches.
  1557. X.TP
  1558. X3)  !hostname !host1!host2...
  1559. XAny user can be specified as long as he resides on the specified hostname.
  1560. XIf a path of hosts is specified, then the user must reside on the end of
  1561. Xthe specified path.
  1562. X.TP
  1563. X4)  @dom.ain
  1564. XThe user must reside on any host within the domain specified.  Neither
  1565. Xthe user or the hostname needs to match; only the domain name must be
  1566. Xrequired to match.
  1567. X.sp
  1568. XExample:
  1569. X.sp
  1570. X.nf
  1571. X.ti +2
  1572. Xset autosign2 = \*Q!island @berkeley.edu @mit.edu *schaefer root: \--dan\*U
  1573. X.fi
  1574. X.sp
  1575. XThis means that any mail sent to 1) anyone at island, 2) anyone within
  1576. Xthe berkeley domain, 3) anyone within the mit domain, 4) Bart Schaefer
  1577. X(at any host anywhere -- even locally),
  1578. Xand 4) root on my local machine only (or, root@my-machine-name)
  1579. Xwill be signed  by my "alternate" signature.  If any address on the
  1580. Xrecipient list fails to satisfy these four matches, the mail will be
  1581. Xsigned by my regular signature.
  1582. X.sp
  1583. XOne can have a local signature and a remote signature by specifying
  1584. Xthe autosign2 to include the hostname of the home machine the user
  1585. Xis logged into.  Note the \*Qisland\*U example above.
  1586. X.sp
  1587. XThe list of recipients, after alias expansion and comment removal, is
  1588. Xthen scanned and the following patterns are matched against those addresses
  1589. Xspecified in the autosign2 or fortunates variable according to these rules.
  1590. X.sp
  1591. XThe signature description is the same as described by
  1592. X.B autosign
  1593. Xvariable.  The colon (:) separates the list of addresses from the signature
  1594. Xdescription.  If there is no colon or the address list is missing, the
  1595. Xentire string is considered the signature (except for the colon).
  1596. X.sp
  1597. XIf
  1598. X.B autosign
  1599. Xis not set, then autosign2 will ONLY work if the tilde command \*Q~S\*U
  1600. Xis specified.  In this way, a user may never have autosign set and just
  1601. Xset autosign2 to be some signature value.  The user may then issue the
  1602. Xtilde command to automatically sign the letter.
  1603. XIf a list of addresses is given (terminated by a colon), then all
  1604. Xrecipients of the message must be in the list of addresses in autosign2;
  1605. Xotherwise, the signature in \fBautosign\fR (if set) is used instead.
  1606. XA null signature in autosign2 will not sign the letter.
  1607. X.sp
  1608. XExample:
  1609. X.sp
  1610. X.nf
  1611. X.ti +2
  1612. Xset autosign2 = "fred, barney, wilma, betty: ~/flintstone.sig"
  1613. X.fi
  1614. X.sp
  1615. XIf a message is sent to:
  1616. X.sp
  1617. X.ti +2
  1618. XTo: fred, wilma
  1619. X.sp
  1620. XThen the file ~/flinstone.sig will be used.
  1621. XHowever, if the address were:
  1622. X.sp
  1623. X.ti +2
  1624. XTo: barney, betty, bambam
  1625. X.sp
  1626. XThen autosign2 will not be used because bambam is not in the list.
  1627. X.sp
  1628. XNote that mail sent via redirection from the calling shell will not
  1629. Xsign letters or append fortunes.
  1630. X.TP
  1631. X.B cdpath
  1632. X(String)
  1633. XSet to a string of pathnames separated by spaces to use when searching
  1634. Xfor a directory when the
  1635. X.B cd
  1636. Xcommand is issued.
  1637. XIf this variable is used, it is recommended that the path `.' be included.
  1638. XNote that this differs from the
  1639. X.IR csh ,
  1640. Xwhich does not require that `.' be present.
  1641. X.TP
  1642. X.B crt
  1643. X(Numeric)
  1644. XSet to a value that describes the number of lines a message
  1645. Xmust have before invoking the
  1646. X.B pager
  1647. Xto view a message.
  1648. X.TP
  1649. X.B cwd
  1650. X(String)
  1651. XThe
  1652. X.B "current working directory"
  1653. Xstring is automatically set upon startup of
  1654. X.I Mush
  1655. END_OF_FILE
  1656. if test 49816 -ne `wc -c <'mush.1.2'`; then
  1657.     echo shar: \"'mush.1.2'\" unpacked with wrong size!
  1658. fi
  1659. # end of 'mush.1.2'
  1660. fi
  1661. echo shar: End of archive 18 \(of 19\).
  1662. cp /dev/null ark18isdone
  1663. MISSING=""
  1664. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ; do
  1665.     if test ! -f ark${I}isdone ; then
  1666.     MISSING="${MISSING} ${I}"
  1667.     fi
  1668. done
  1669. if test "${MISSING}" = "" ; then
  1670.     echo You have unpacked all 19 archives.
  1671.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1672. else
  1673.     echo You still need to unpack the following archives:
  1674.     echo "        " ${MISSING}
  1675. fi
  1676. ##  End of shell archive.
  1677. exit 0
  1678.